package com.dys.testmethodreference10;

import java.util.function.Function;

/**
 * @className: com.dys.testmethodreference10.MethodReference03
 * @description: 数组::构造器
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/09/01 下午4:15
 */
public class MethodReference07 {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        Function<Integer, String[]> func1 = (len) -> new String[len];

        String[] arr = func1.apply(3);
        System.out.println("数组的长度：" + arr.length);

        // 方法引用的方式调用数组的构造器
        // 方法引用是对Lambda表达式符合特定情况下的一种缩写方式，它使得我们的Lambda表达式更加的精简
        // 注意的是方法引用只能引用已经存在的方法
        Function<Integer, String[]> func2 = String[]::new;
        String[] arr2 = func2.apply(5);
        System.out.println("方法引用，数组的长度：" + arr2.length);
    }
}
